The present invention relates to a computer editing system and, more particularly, to a system for editing storage information in a virtual machine (VM) environment.
In computing systems, numeric or alphanumeric information is often stored and later retrieved for display, printout, modification, duplication or other use. As computing systems become more complicated, it is increasingly more difficult to access only selected parts of such stored information and to modify such data without affecting other information stored on the same medium.
Editors have been devised to allow a user to access a relatively small portion of the stored information and to modify it as required. An editor for real and virtual storage, for example, is disclosed in IBM Technical Disclosure Bulletin Volume 21, No. 12, page 4946 (May 1979), by N. Inaba et al, titled "Programmer Aid for the Alter/Display Facility".
Computing systems generally have so-called real storage. Real storage is the main, physical memory in any computing system. It may consist of memory devices such as random access memory (RAM) into which information may be written. Such real storage, in the case of a multi-user or time sharing environment, can be reused for each task that is being performed. In such a way, each user working on the same computing system has access to the entire real storage during the time his or her task is being performed.
Logistically, each one of a plurality of users has access to all of the real storage at a given predetermined time because information is swapped between the real storage area and a permanent or semi-permanent medium, such as a magnetic disk or the like. In that way, as each user accesses information, data that is stored on a storage medium for other users is invisible to the current user and does not infringe the current user's storage space.
Another concept that has proven useful in computing systems, especially in multi-user environments, is commonly called virtual storage. Virtual storage allows two or more users to access the real storage of the computing system, but to have the addressable locations automatically translated or mapped into the original addresses. Thus, each of a plurality of users may believe that he or she is accessing information in the same storage locations, beginning at the lowest end of the real memory. The size of virtual storage is limited by the addressing scheme of the computer system and by the amount of auxiliary storage available, and not by the actual number of main storage locations.
A so-called virtual machine is a functional simulation of a computer and its associated peripheral devices. As such, a virtual machine is controlled by a suitable operating system. It should be noted that virtual machines use similar concepts to virtual storage in that as far as each user is concerned, all of the system peripheral devices are exclusively controlled by the VM operating system.
Because the information that is stored may be of a confidential nature, it is often difficult to edit the entire storage or portions thereof without using a special security code or unlocking device.
Heretofore, if a user or programmer wished to display virtual machine storage, he or she used a control program command, such as the DISPLAY command, followed by an address, to display the contents of the requested storage area. If the user decided to modify any of the requested data, he or she then entered a STORE command, followed by the location to be modified and by the new data. This procedure was often time consuming if the programmer wished to modify several different storage locations. Moreover, there was the possibility that the wrong address would be keyed in or otherwise entered and the store operation would be performed with respect to the wrong location, resulting in inaccurate data at both addresses: the intended one and the inadvertently accessed one. The editing systems thus required great accuracy in their use because if an error were made in the course of editing, affected files could have been irrevocably damaged or irretrievably lost.
An editing system that analyzes the information in a block of data before allowing the user to modify it is not useful. For example, consider a block of data that includes directory information with pointers and addresses. If one of the addresses is incorrectly stored, the system will access the wrong location, losing track of the data flow and resulting in an abnormal and unpredictable operation.
There is often a need for a user to access one virtual machine storage area from another virtual machine. Thus, it would be advantageous to have a system, such as a storage editor, that would allow a user to do so.
Moreover it would be desirable for a user to be able to access one full screen of data in a storage area at a time.
It would further be advantageous for a user to be able to invoke such a storage editor from a control program, for example, while tracing a program listing.
It would also be advantageous to be able to execute a program on a virtual machine under the control of another virtual machine.
It would further be advantageous for a system to access a block of data at a time regardless of the information contained therein. And, similarly, it would be desirable for a screen of information to be brought into a user's display for modification regardless of the information exhibited on that screen.
Moreover, it would be advantageous for information such as addresses and index data to be correctable and restorable onto the media from which it was taken.